import org.apache.spark.{SparkConf, SparkContext}
object TestRDD {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("RDDJoinDemo").setMaster("local[*]")
    val sc = new SparkContext(conf)

    // 创建第一个 RDD
    val rdd1 = sc.parallelize(Seq((1, "a"), (2, "b")))
    // 创建第二个 RDD
    val rdd2 = sc.parallelize(Seq((2, "x"), (3, "y")))


    // join 方法
    println("join 方法（内连接）结果:")
    rdd1.join(rdd2).collect().foreach(println)

    // rightOuterJoin 方法
    println("\nrightOuterJoin 方法（右外连接）结果:")
    rdd1.rightOuterJoin(rdd2).collect().foreach(println)

    // leftOuterJoin 方法
    println("\nleftOuterJoin 方法（左外连接）结果:")
    rdd1.leftOuterJoin(rdd2).collect().foreach(println)


    println("\nfullOuterJoin 方法（全外连接）结果:")
    rdd1.fullOuterJoin(rdd2).collect().foreach(println)

    sc.stop()
  }

}
